package com.whfc.safety.param;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.whfc.common.util.DateUtil;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @Description 新建危大工程台账
 * @Author hw
 * @Date 2021-08-17 17:53
 * @Version 1.0
 */
@Data
public class SafetyDangerAddParam implements Serializable {

    /**
     * 组织机构id
     */
    @NotNull
    private Integer deptId;

    /**
     * 危大工程名称
     */
    @NotEmpty
    private String name;

    /**
     * 危大工程概况
     */
    private String survey;

    /**
     * 危大工程类别id
     */
    @NotNull
    private Integer dictId;

    /**
     * 危大工程类别
     */
    @NotEmpty
    private String dictName;

    /**
     * 类别描述id
     */
    @NotNull
    private Integer descriptionId;

    /**
     * 类别描述
     */
    @NotEmpty
    private String description;

    /**
     * 计划开始时间
     */
    @NotNull
    @JsonFormat(pattern = DateUtil.DATE_FORMAT)
    private Date planStartTime;

    /**
     * 计划结束时间
     */
    @NotNull
    @JsonFormat(pattern = DateUtil.DATE_FORMAT)
    private Date planEndTime;

    /**
     * 负责人id
     */
    @NotNull
    public Integer userId;

    /**
     * 负责人名称
     */
    @NotEmpty
    public String userName;

    /**
     * 施工开始时间
     */
    @NotNull
    @JsonFormat(pattern = DateUtil.DATE_FORMAT)
    private Date operationStartTime;

    /**
     * 施工结束时间
     */
    @NotNull
    @JsonFormat(pattern = DateUtil.DATE_FORMAT)
    private Date operationEndTime;

    /**
     * 总包单位负责人id
     */
    @NotNull
    private Integer corpUserId;

    /**
     * 总包单位负责人
     */
    @NotEmpty
    private String corpUserName;

    /**
     * 责任区域
     */
    @Size(min = 1, message = "责任区域至少需要选择一条")
    private List<Integer> areaIds;

    /**
     * 管控要点id
     */
    private List<Integer> controlIds;

    /**
     * 附件
     */
    private List<SafetyDangerAttachParam> attachUrls;
}
